package servicioSucursal;

import dao.DaoSucursal;
import java.util.List;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import mappingOfObject.Sucursal;
import mappingOfObject.Usuario;

/**
 *
 * @author felipe
 */
@WebService(serviceName = "SucursalWebService")
public class SucursalWebService {

    @WebMethod(operationName = "listarSucursal")
    public List<Sucursal> listarSucursal(@WebParam(name = "idempresa") long idempresa) {
        Usuario u=(Usuario)persistenceObjectHandler.HandlerObjectPersistence.loadObjectByLongId(idempresa, Usuario.class);
        List<Sucursal> aux=dao.DaoSucursal.listarSucursal(u);
        return aux;
    }

    @WebMethod(operationName = "crearSucursal")
    public boolean crearSucursal(
    @WebParam(name = "direccion") String direccion,
    @WebParam(name = "latitud") float latitud,
    @WebParam(name = "longitud") float longitud,
    @WebParam(name = "idusuario") long idusuario) {
        Sucursal s=new Sucursal();
        s.setDireccion(direccion);
        s.setLatitud(latitud);
        s.setLongitud(longitud);
        s.setVisible(true);
        return DaoSucursal.nuevaSucursal(idusuario, s);
    }

    @WebMethod(operationName = "obtenerSucursalId")
    public Sucursal obtenerSucursalId(@WebParam(name = "id") long id) {
        return (Sucursal) persistenceObjectHandler.HandlerObjectPersistence.loadObjectByLongId(id, Sucursal.class);
    }

    @WebMethod(operationName = "eliminarSucursal")
    public boolean eliminarSucursal(@WebParam(name = "id") long id) {
        Sucursal s=(Sucursal) persistenceObjectHandler.HandlerObjectPersistence.loadObjectByLongId(id, Sucursal.class);
        s.setVisible(false);
        return persistenceObjectHandler.HandlerObjectPersistence.saveOrUpdateObject(s);
    }

    @WebMethod(operationName = "actualizarSucursal")
    public boolean actualizarSucursal(@WebParam(name = "id") long id,
    @WebParam(name = "direccion") String direccion,
    @WebParam(name = "latitud") float latitud,
    @WebParam(name = "longitud") float longitud) {
        Sucursal c=(Sucursal) persistenceObjectHandler.HandlerObjectPersistence.loadObjectByLongId(id, Sucursal.class);
        c.setDireccion(direccion);
        c.setLatitud(latitud);
        c.setLongitud(longitud);
        c.setVisible(true);
        return persistenceObjectHandler.HandlerObjectPersistence.saveOrUpdateObject(c);
    }
}